package org.dfg.corejava.designPattern.state;

/**
 * 状态模式<br/>
 * 当一个对象状态改变时，允许改变其行为，这个对象看起来像是改变了其类<br/>
 * 在实际应用中，一个对象在做某件事时，实际工作由其某个状态而决定<br/>
 * 如果加入用大量分支实现，造成了Long Method 用一个State对象代表其状态，那么执行某事件只需调用handle方法即可<br/>
 * 而在状态改变是，只需为其设置新的状态对象
 * @author DingFugui
 */
public class StateTest {
	public static void main(String[] args) {
		Context c = new Context();
		c.setId(0);
		c.setState(new StateA());
		while (c.getId() != 99) {
			c.getState().handle(c);
		}
	}
}
